/*
 * Juego.cpp
 *
 *  Created on: 17/09/2012
 *      Author: De La
 */

#include "Juego.h"
#include "Personaje.h"

Juego::Juego() {
}

const list<Textura>& Juego::getTexturas() const {
	return texturas;
}

void Juego::setTexturas(const list<Textura>& texturas) {
	this->texturas = texturas;
}

list<TipoPersonaje>& Juego::getTiposPersonaje() {
	return tiposPersonaje;
}

Nivel* Juego::getNivel() {
	return nivel;
}

void Juego::setNivel(Nivel* nivel) {
	this->nivel = nivel;
}

Pantalla* Juego::getPantalla() const {
	return pantalla;
}

map<string, string>& Juego::getParametros() {
	return parametros;
}

void Juego::setParametros(const map<string, string>& parametros) {
	this->parametros = parametros;
}

void Juego::setPantalla(Pantalla* pantalla) {
	this->pantalla = pantalla;
}

void Juego::setTiposPersonaje(const list<TipoPersonaje>& tiposPersonaje) {
	this->tiposPersonaje = tiposPersonaje;
}

Juego::~Juego() {
	// TODO Auto-generated destructor stub
}

/**
 *
 */
Personaje *Juego::getProtagonista() {
	list<Personaje*>::const_iterator it;
	for (it = getNivel()->getPersonajes().begin(); it != getNivel()->getPersonajes().end(); ++it) {
		if ( _stricmp( (*it)->getTipoPersonaje()->getNombre().c_str(), "Protagonista" ) == 0 ) {
			return (*it);
		}
	}
	return NULL;
}

/**
 *
 */
void Juego::lockNivel() {
	nivelMutex.lock();
}
void Juego::unlockNivel() {
	nivelMutex.unLock();
}

